package cn.fl.ref.fribaseinfo.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.cmm.base.framework.utils.DecimalUtils;
import cn.fl.ref.fribaseinfo.vo.BankAccInfoVO;
import fl.ref.fribaseinfo.dto.BankAccInfoDTO;

/**
 * @Description: 银行帐号信息
 */
public class BankAccInfoVOTransform {

	/**
	 * DTO 转 VO
	 * 
	 * @param dto
	 * @return
	 */
	public static BankAccInfoVO toVO(BankAccInfoDTO dto) {
		BankAccInfoVO vo = null;
		if (dto != null) {
			vo = new BankAccInfoVO();
			vo.setId(dto.getId());// 帐户ID
			vo.setBanAccNm(dto.getBanAccNm());// 开户行名
			vo.setBanAccNum(dto.getBanAccNum());// 开户行号
			vo.setAccTypCd(dto.getAccTypCd());// 账户用途
			vo.setAccTypCdNm(dto.getAccTypCdNm());// 账户用途
			vo.setAccAgeCd(dto.getAccAgeCd());// 帐号所属机构
			vo.setAccNm(dto.getAccNm());// 账户名称
			vo.setAccNum(dto.getAccNum());// 账号
			vo.setPubVerPriCd(dto.getPubVerPriCd());// 账户类型
			vo.setAccStsCd(dto.getAccStsCd());// 账户状态
			vo.setFundRasInsId(dto.getFundRasInsId());// 融资机构编号
			vo.setRem(dto.getRem()); // 备注

			vo.setCrtUsrId(dto.getCrtUsrId());// 创建人
			vo.setCrtTm(dto.getCrtTm());// 创建时间
			vo.setMdfTm(dto.getMdfTm());// 修改人
			vo.setMdfUsrId(dto.getMdfUsrId());// 修改时间

			vo.setPubVerPriCdNm(dto.getPubVerPriCdNm()); // 账户类型名称
			vo.setPurpCds(dto.getPurpCds());//可投放款项
			vo.setPayNum(dto.getPayNum());//顺序
			vo.setCurrLimAmt(DecimalUtils.convertFenToYuan(dto.getCurrLimAmt()));//余额
			vo.setAudStsCd(dto.getAudStsCd());//审核状态
			vo.setNextAssigneeId(dto.getNextAssigneeId());//下一节点处理人 
			vo.setBizFlag(dto.getBizFlag());//支付表所属机构是否是狮桥
			vo.setForbidProjectType(dto.getForbidProjectType());//不可投放项目类型
			vo.setForbidArea(dto.getForbidArea());//不可投放地区
			if(null == dto.getNewCarLTV()) {
			}else {
				vo.setNewCarLTV(dto.getNewCarLTV());//新车LTV限制
			}
			if(null == dto.getUsedCarLTV()) {
			}else {
				vo.setUsedCarLTV(dto.getUsedCarLTV());//二手车LTV限制
			}
			
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * 
	 * @param vo
	 * @return
	 */
	public static BankAccInfoDTO toDTO(BankAccInfoVO vo) {
		BankAccInfoDTO dto = null;
		if (vo != null) {
			dto = new BankAccInfoDTO();
			dto.setId(vo.getId());// 帐户ID
			dto.setBanAccNm(vo.getBanAccNm());// 开户行名
			dto.setBanAccNum(vo.getBanAccNum());// 开户行号
			dto.setAccTypCd(vo.getAccTypCd());// 账户用途
			dto.setAccTypCdNm(vo.getAccTypCdNm());// 账户用途
			dto.setAccAgeCd(vo.getAccAgeCd());// 帐号所属机构
			dto.setAccNm(vo.getAccNm());// 账户名称
			dto.setAccNum(vo.getAccNum());// 账号
			dto.setPubVerPriCd(vo.getPubVerPriCd());// 账户类型
			dto.setAccStsCd(vo.getAccStsCd());// 账户状态
			dto.setFundRasInsId(vo.getFundRasInsId());// 融资机构编号
			dto.setRem(vo.getRem()); // 备注

			dto.setCrtUsrId(vo.getCrtUsrId());// 创建人
			dto.setCrtTm(vo.getCrtTm());// 创建时间
			dto.setMdfTm(vo.getMdfTm());// 修改人
			dto.setMdfUsrId(vo.getMdfUsrId());// 修改时间

			dto.setPubVerPriCdNm(vo.getPubVerPriCdNm()); // 账户类型名称
			dto.setPurpCds(vo.getPurpCds());//可投放款项
			dto.setPayNum(vo.getPayNum());//顺序
			//modify  可用余额!=null by gengchunlan 20180228
			if(vo.getCurrLimAmt()!=null){
				dto.setCurrLimAmt(DecimalUtils.convertYuanToFen(vo.getCurrLimAmt()));//余额
			}//end by gengchunlan 20180228
			dto.setAudStsCd(vo.getAudStsCd());//审核状态
			dto.setNextAssigneeId(vo.getNextAssigneeId());//下一节点处理人 
			dto.setBizFlag(vo.getBizFlag());//支付表所属机构是否是狮桥
			dto.setForbidProjectType(vo.getForbidProjectType());//不可投放项目类型
			dto.setForbidArea(vo.getForbidArea());//不可投放地区
			if(null == vo.getNewCarLTV()) {
			}else {
				dto.setNewCarLTV(vo.getNewCarLTV());//新车LTV限制
			}
			if(null == vo.getUsedCarLTV()) {
			}else {
				dto.setUsedCarLTV(vo.getUsedCarLTV());//二手车LTV限制
			}
			
			
		}
		return dto;
	}

	/**
	 * DTO集合 转 VO集合
	 * 
	 * @param list
	 * @return
	 */
	public static List<BankAccInfoVO> toVOList(List<BankAccInfoDTO> list) {
		List<BankAccInfoVO> voList = new ArrayList<BankAccInfoVO>();
		if (CollectionUtils.isNotEmpty(list)) {
			for (BankAccInfoDTO po : list) {
				voList.add(toVO(po));
			}
		}
		return voList;
	}
	
	public static List<BankAccInfoDTO> toDTOList(List<BankAccInfoVO> list) {
		List<BankAccInfoDTO> dtoList = new ArrayList<BankAccInfoDTO>();
		if (CollectionUtils.isNotEmpty(list)) {
			for (BankAccInfoVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}

}
